// 函数类型

export {} // 确保跟其他示例没有成员冲突

// 若接收任意参数则使用rest操作符  ...rest: number
function func1 (a: number, b?: number, c: number = 10): string {
    return 'func1'
}
// 形参与实参完全一致
func1(100, 200)
func1(100)
func1(100, 200, 300)

// ---------------------------
// 根据函数表达式推断出变量类型 作为回调函数则需要约束形参类型 则需要使用箭头函数
const func2: (a: number, b:number) => string = function (a: number, b: number): string {
    return 'func2'
}